Method and apparatus for optimization of wireless mesh networks

ABSTRACT

A cross-layer optimization framework for designing of multi-radio/multi-channel wireless mesh networks with network coding to support multiple unicast applications is used. A column-generation-based primal-dual method is used to solve the optimization problem. For network-layer formation, a code construction scheme based on linear programming is used. Delay constraints are imposed on the network code construction so the possible impact of the extra decoding delay to the upper-layer Transmission Control Protocol/Internet Protocol (TCP/IP) performance may be reduced without changing the upper-layer protocols.

This application claims the benefit of U.S. Provisional Application No.60/868,418 filed on Dec. 4, 2006, which is incorporated herein byreference.

BACKGROUND OF THE INVENTION

The present invention is related generally to wireless networks, and inparticular, to throughput optimization in wireless mesh networks.

A wireless mesh network is a mesh network implemented over a wirelessnetwork system such as wireless local area network (LAN). As such,wireless mesh networks have been considered as a practical wirelesssolution for providing community broadband internet access service andother wireless services. In some cases, nodes (e.g., transmitters) inwireless mesh networks may be equipped with multiple radios (e.g.,multiple sources) and may be capable of transmitting over multipleorthogonal channels simultaneously.

For a traditional network, each intermediate node forwards receivedinformation to the next node (e.g., the next hop). This method offorwarding information is inefficient and occupies excessive capacity.While transmission may occur over multiple channels in such networks,the resources of wireless mesh networks are finite and it is difficultto efficiently utilize the wireless resources.

Therefore, there remains a need to improve throughput in wireless meshnetworks.

BRIEF SUMMARY OF THE INVENTION

The present invention is generally directed to designing a wireless meshnetwork. The wireless mesh network may have a plurality of transmissionsources and a plurality of nodes connected by a plurality of links. Thedesign of the network may include optimizing the throughput bydetermining an optimization problem describing the wireless meshnetwork. Associated constraints for the optimization problem may bedetermined as well as a network code for the wireless mesh network. Thenetwork code may be designed by solving the optimization problem using acolumn-based primal-dual optimization method.

These and other advantages of the invention will be apparent to those ofordinary skill in the art by reference to the following detaileddescription and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an exemplary network according to an embodiment of thepresent invention;

FIG. 2 depicts an exemplary network according to an embodiment of thepresent invention;

FIG. 3 depicts a flowchart of a method of optimizing throughput in anetwork;

FIG. 4 depicts a flowchart of a method 400 of solving an optimizationproblem; and

FIG. 5 is a schematic drawing of a controller.

DETAILED DESCRIPTION

The present invention is generally directed to a cross-layer method fordesigning and optimizing multi-radio/multi-channel wireless meshnetworks with network coding to support multiple unicast applications.In designing a wireless mesh network, the network constraints arerepresented as an optimization problem. A column-generation-basedprimal-dual method is used to solve this optimization problem, takinginto account the broadcasting features of wireless networks.

Optimization of the wireless mesh network may include designing anetwork code for transmission of information among the nodes of thenetwork. Thus, optimization may allow full realization of thetheoretical gains of network coding. For network-layer formation, a codeconstruction scheme based on linear programming is used. In this way,the network coding plus media access control (MAC) gain may besignificantly increased. Delay constraints are imposed on the networkcode construction so the possible impact of the extra decoding delay tothe upper-layer Transmission Control Protocol/Internet Protocol (TCP/IP)performance may be reduced without changing the upper-layer protocols.

In practical application, the methods described herein may be used todesign a wireless mesh network with multiple transmission sources (e.g.,multiple antennas, base stations, etc.). The additional transmissionsources may improve network throughput. Though this may increasecomplexity in decoding downstream (e.g., at receivers, nodes, drains,etc.), the network coding described herein may account for thiscomplexity (e.g., by discounting solutions which introduce decodingdelay) so that there is no significant increase in decoding time. Thus,the overall transmission speed of the wireless mesh network may beincreased.

FIGS. 1 and 2 depict exemplary wireless mesh networks featuringpseudo-broadcasting according to embodiments of the present invention.Such exemplary networks provide a framework for understand theoptimization methods described herein and the present invention is notlimited to only these network types and/or arrangements.

FIG. 1 depicts an exemplary network 100. Network 100 includes multiplephysical nodes 102, 104, and 106. Though depicted in FIG. 1 as a network100 having three physical nodes 102-106, any number of physical nodesmay be employed.

Network 100 may be a wireless mesh network as is known. In analternative embodiment, network 100 may be a portion of a wirelessnetwork (e.g., a source and two drains of a wireless mesh network,etc.). In at least one embodiment of the present invention, network 100may be designed and/or optimized according to the methods describedherein. In some embodiments, network 100 may be a multi-radio,multi-channel wireless mesh network. To facilitate such a network,physical nodes 102-106 may communicate via one or more radios, networkinterface cards (NICs), and/or other communication devices (not shown)able to access multiple orthogonal channels simultaneously. As such,physical nodes 102-106 may communicate (e.g., transmit information) bymultiple independent point-to-point transmissions (e.g., multipleunicast). These transmissions may be made over one or more links, whichmay be any means of connecting one location (e.g., node) to another forthe purpose of transmitting and receiving data as is known.

In the exemplary network 100, physical node 102 is also referred to asNode 1 (e.g., N₁) and/or Source 1 (e.g., s₁) and is capable ofsimultaneous multiple unicast transmission to physical node 104, alsoreferred to as Node 2 (e.g., N₂) and/or Drain 1 (e.g., d₁), via link108, also referred to as Link 1 (e.g., ε₁). Link 1 and other linksdescribed herein may be data links such as wireless communicationchannels or the like. Similarly, physical node 102 is capable ofsimultaneous multiple unicast transmission to physical node 106, alsoreferred to as Node 3 (e.g., N₃) and/or Drain 2 (e.g., d₂), via link110, also referred to as Link 2 (e.g., ε₂). Of course, since network 100may have any number of nodes and any number of corresponding links,nodes may be labeled N={1, 2, . . . , N} and links may be labeled ε={1,2, . . . , L}. Accordingly, a directed graph G=(N, ε) may be used tomodel network 100.

Network 100, as a multi-radio network, may have a radio distributionvector

$\underset{\_}{I}\overset{\Delta}{=}\left\{ I_{i} \right\}_{i = 1}^{N}$where I_(i) indicates the available radio number at the i^(th) node. Thetopology of network 100 may be represented by an N×L indicator matrix D,such that

${\underset{\_}{D}\left( {n,I} \right)} = \left\{ \begin{matrix}{1,} & {{{if}\mspace{14mu}{the}\mspace{14mu} n^{th}{\mspace{11mu}\;}{node}\mspace{14mu}{is}\mspace{14mu}{the}\mspace{14mu}{start}\mspace{14mu}{node}\mspace{14mu}{of}\mspace{14mu}{the}\mspace{14mu} I^{th}\mspace{14mu}{link}},} \\{{- 1},} & {{{if}\mspace{14mu}{the}\mspace{14mu} n^{th}\mspace{11mu}{node}\mspace{14mu}{is}\mspace{14mu}{the}\mspace{14mu}{end}\mspace{14mu}{node}\mspace{14mu}{of}\mspace{14mu}{the}\mspace{14mu} l^{th}\mspace{14mu}{link}},} \\{0,} & {{otherwise}.}\end{matrix} \right.$

To illustrate the multiple unicast methods of transmission, connection,and communication, network 100 may be described as featuringpseudo-broadcasting. That is, network 100 may be thought of as having avirtual node 112. Virtual node 112 is not a node in the same way thatphysical nodes 102-106 are nodes; virtual node 112 does not have aphysical structure, but is used herein to help model the network 100.For purposes of illustration and simplicity, virtual node 112 isdescribed hereafter as if it is a physical node capable of sendingand/or receiving transmissions in the same manner as physical nodes102-106.

Virtual node 112 may have links to one or more physical nodes 102-106.In network 100, virtual node 112 may be referred to as Node 4 (e.g., N₄)and may receive transmissions from physical node 102 over link 114(e.g., ε₃). Similarly, virtual node 112 may transmit information tophysical nodes 104 and 106 over link 116 (e.g., ε₄) and link 118 (e.g.,ε₅), respectively.

FIG. 2 depicts an exemplary network 200. Network 200 includes multiplephysical nodes 202, 204, 206, 208, and 210. Similarly to network 100 ofFIG. 1, though depicted in FIG. 2 as a network 200 having five physicalnodes 202-210, any number of physical nodes may be employed.

Network 200 may be a wireless mesh network as is known. In analternative embodiment, network 200 may be a portion of a wirelessnetwork (e.g., multiple sources and multiple drains of a wireless meshnetwork, etc.). In at least one embodiment of the present invention,network 100 may be designed and/or optimized according to the methodsdescribed herein. In some embodiments, network 200 may be a multi-radio,multi-channel wireless mesh network or another type of broadcastnetwork. To facilitate such a network, physical nodes 202-210 maycommunicate via one or more radios, network interface cards (NICs),and/or other communication devices (not shown) able to access multipleorthogonal channels simultaneously. As such, physical nodes 202-210 maycommunicate (e.g., transmit information) by multiple independentpoint-to-point transmissions (e.g., multiple unicast).

In the exemplary network 200, physical node 202 is also referred to asNode 1 (e.g., N₁) and/or Source 1 (e.g., s₁) and is capable ofsimultaneous multiple unicast transmission to intermediate (e.g., relay)physical node 206, also referred to as Node 3 (e.g., N₃), via link 212,also referred to as Link 1 (e.g., ε₁). Physical node 202 may also beconfigured to transmit to physical node 208, also referred to as Node 4(e.g., N₄) and/or Drain 2 (e.g., d₂), via link 214, also referred to asLink 2 (e.g., ε₂). Similarly, physical node 204 is capable ofsimultaneous multiple unicast transmission to intermediate physical node206 via link 216, also referred to as Link 3 (e.g., ε₃). Physical node204 may also be configured to transmit to physical node 210, alsoreferred to as Node 5 (e.g., N₅) and/or Drain 1 (e.g., d₁), via link218, also referred to as Link 4 (e.g., ε₄). Intermediate physical nodemay be configured to relay transmissions received from physical nodes202 and 204 and/or transmit the same and/or other information tophysical nodes 208 and 210 via links 220 (e.g., ε₅) and 222 (e.g., ε₆),respectively. As will be discussed further below, intermediate physicalnode 206 may be further configured to code and/or otherwise altertransmissions received from physical nodes 202 and 204 as appropriate.

Of course, since network 200 may have any number of nodes and any numberof corresponding links, nodes may be labeled N={1, 2, . . . , N} andlinks may be labeled ε={1, 2, . . . , L}. Accordingly, a directed graphG=(N, ε) may be used to model network 200 as described above withrespect to network 100.

Similar to network 100, network 200 may be thought of as having virtualnodes 224 (e.g., N₆), 226 (e.g., N₇), and 228 (e.g., N₈). In a similarmanner, physical node 202 may “transmit” to virtual node 224, which may,in turn, “transmit” to intermediate physical node 206 and/or physicalnode 208 over corresponding links. Physical node 204 may “transmit” tovirtual node 226, which may, in turn, “transmit” to intermediatephysical node 206 and/or physical node 210. These transmissions may alsobe over one or more corresponding links (e.g., data links). In the sameway, intermediate physical node 206 may “transmit” information tophysical nodes 208 and 210 by way of virtual node 228 and another set ofcorresponding links. One of skill in the art will recognize theparticular means of communication between the physical nodes and thevarious network arrangements (e.g., butterfly, X, etc.) which may beemployed. Accordingly, these issues will not be discussed in furtherdetail herein.

Using the concept of virtual nodes as described in relation to FIGS. 1and 2, the directed graph G may be extended to G′=(N′, ε′), where N′={1,2, . . . , N, N+1, . . . , N′} and ε′={1, 2, . . . , L, L+1, . . . ,L′}, with {N+1, . . . , N′} and {L+1, . . . , L′} representing thevirtual nodes and corresponding links, respectively. Accordingly, thenetwork topology matrix D′ is an N′×L′ indicator matrix with theupper-left N×L elements identical to D. Similarly, radio distributionvector I′ may be formed as above. Since the virtual nodes (e.g., virtualnodes 112, 224-228, etc.) do not need actual NICs and/or other hardwareto create wireless connections (e.g., links 114-118, 212-222, etc.),{I_(i)=0}_(i−N+1) ^(N′) and the network capacity region is a function ofI. Hereinafter, G denotes the original network (e.g., networks 100 or200 without virtual nodes 112 or 224-228), and G′ denotes the extendednetwork with pseudo-broadcasting enabled (e.g., networks 100 and 200with virtual nodes 112 and 224-228).

FIG. 3 depicts a flowchart of a method 300 of optimizing throughput in anetwork. The throughput of the network (e.g., network 200) may be anamount of data (e.g., digital data) per unit time delivered over aphysical or logical link (e.g., over links 212-222) or that is passingthrough a network node (e.g., physical nodes 202-210). In at least oneembodiment, the network to be optimized may be similar to wireless meshnetworks 100 and/or 200. The method begins at step 302.

In step 304, an optimization problem for the throughput of the networkis determined. The optimization problem may be a linear optimizationproblem describing the network being optimized. For example, asdiscussed above, multiple unicast transmissions may be made over network100. Assuming there are S independent data sessions in the network,s_(i) is the source node (e.g., physical node 102) and d_(i) is thedestination node (e.g., physical node 104 or 106) in the i^(th) unicastsession. Let R={R_(i)}_(i=1) ^(T) be the unicast data rates for Tsessions. Denote f_(l) as the aggregated flow rate over the l^(th) link(1≦l≦L′). Given R, F(R) is the set containing all possible network flowrates that can support R. Let C(l) be the set containing all achievablerates c={c_(l)}_(l=1) ^(L′) that the physical layer can support on linkslεε′. C(l) is a function of the radio distribution vector (l) discussedabove with respect to FIGS. 1 and 2. Thus, the network optimizationproblem can then be formulated as:

maxU(R,f)s.t.fεF(R); r_(i)≧0, ∀i; cεC(I); f_(l)≦c_(l), ∀l where U(R,f)is a utility function. In some embodiments, the utility function isassumed to be concave.

In step 306, the constraints of the optimization problem determined instep 304 are determined. In the embodiment of the present inventionshown in step 304, four constraints are used. These constraints aredescribed in substeps 306 a-d.

In substep 306 a, the first constraint is determined. The firstconstraint fεF(R) enforces the dependence between the achievable rates Rand the data flows f. In substep 306 b, the second constraint isdetermined. The second constraint r_(i)≧0, ∀i is that data rate (e.g.,the data transmission rate, etc.). In substep 306 c, the thirdconstraint is determined. The third constraint cεC(I) indicates therelationship between the achievable link capacity c and radio allocationalong with the resource allocation, scheduling, and data routingschemes. In substep 306 d, the fourth constraint is determined. Thefourth constraint f_(l)≦c_(l), ∀l bounds the sum of the flow rate oneach link by the link capacity. For the sake of notational simplicity,the index l in C(l) is omitted hereinafter.

When maximizing the total throughput is the design target (e.g., theresultant of the optimization formulation in method step 304), thenetwork optimization problem max U(R,f)s.t.fεF(R); r_(i)≧0, ∀i; cεC(I);f_(l)≦c_(l), ∀l can be defined as the sum of the data rates in allsessions

${U\left( {\underset{\_}{R},\underset{\_}{f}} \right)}\overset{\Delta}{=}{\sum\limits_{i = 1}^{T}{R_{i}.}}$Alternatively, in case fairness needs to be taken into account, theminimum end-to-end communication rates may be maximized by letting

${{U\left( {\underset{\_}{R},\underset{\_}{f}} \right)}\overset{\Delta}{=}{\min\left\{ R_{i} \right\}}},$which may be transformed to an equivalent linear formulation. That is,all users (e.g., sources, drains, nodes, etc.) should realize throughputgain (e.g., a higher rate) in the newly designed network. Accordingly,the rate at each node is taken into account instead of the sum rate ofthe system.

In step 308, the optimization problem is solved. In at least oneembodiment of the invention, the optimization problem is solved using aprimal-dual approach with column generation. Such an approach will bedescribed in further detail below with respect to FIG. 4. The methodends at step 310.

FIG. 4 depicts a flowchart of a method 400 of solving an optimizationproblem as in method 300. The method 400 may be a primal-dual methodwith column generation. In other embodiments, other methods of solvingthe optimization problem (e.g., designing and/or optimizing the network)may be used. The method begins at step 402.

In step 404, a set V′ containing several feasible link rates c_(k) isgenerated. In at least one embodiment, there are K feasible linkcapacity vectors such that V′={c_(k)εC}_(k=1) ^(K).

The set F(R) and C in

maxU(R,f)s.t.fεF(R); r_(i)≧0, ∀i; cεC(I); f_(l)≦c_(l), ∀l are determinedby the specific network and physical-layer model (e.g., as in networks100 and 200 of FIGS. 1 and 2). Since time-sharing is enabled, C is aconvex set. In time sharing, multiple solutions may be applied atmultiple times. For example, for a duration T=T₁+T₂, T₁ will have afirst solution and T₂ will have a second solution. Thus, for time T, therealized solution will have a ration of T₁/T₂.

Therefore, F(R) is also convex if data routing is assumed to be based onthe multicommodity flow model or routing with linear network coding, asdescribed below.

These two constraints are coupled only through the constraintsf_(l)≦c_(l), ∀l. Thus the optimization problem of method step 304 is aconvex optimization problem. Since C is a convex hull, it is fullydetermined by its vertices. However, since joint resource allocation andscheduling are considered, C may be too complex to be described for awireless network.

In step 406, the column-generation method is employed to solve theoptimization problem. Instead of trying to exactly describe the convexhull C, another convex hull C′⊂C is employed to approximate C. Thecorresponding convex hull

$C^{\prime} = \left\{ {{{\underset{\_}{c}\text{❘}\underset{\_}{c}} = {\sum\limits_{k = 1}^{K}{\alpha_{k}{\underset{\_}{c}}_{k}}}},{{s.t.{\sum\limits_{k = 1}^{K}\alpha_{k}}} = 1},{\alpha_{k} \geq 0},{\forall k}} \right\}$is fully characterized by the set V′ of step 404. The original linearprogramming problem is then transformed to the following problem:

${\max\; U\left\{ {\underset{\_}{R},\underset{\_}{f}} \right\}},{{{s.t.\mspace{14mu}\underset{\_}{f}} \in {F(R)}};{r_{i} \geq 0}},{{\forall i};{\underset{\_}{c} = {\sum\limits_{k = 1}^{K}{\alpha_{k}{\underset{\_}{c}}_{k}}}};{{\sum\limits_{k = 1}^{K}\alpha_{k}} = 1};{f_{l} \leq c_{l}}},{{\forall l};{a_{k} \geq 0}},{\forall{k.}}$This is referred to as the restricted primal problem.

In step 408, the lower bound U_(lower) and the dual factors{λ_(l)}_(l=1) ^(L′) are determined. Since C′εC, the solution to therestricted primal problem provides a lower bound U_(lower)(l) for theoptimization problem of method 300.

Similarly, in step 410, the upper bound U_(uppper) and a new vertex isdetermined. The upper bound of the optimization problem of method 300may be determined by considering the dual of the original problem givenby:

${{\max\limits_{{r_{i} \geq 0},\forall_{i}}\left\{ {{U\left( {\underset{\_}{R},\underset{\_}{f}} \right)} - {\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}f_{l}}}} \middle| {\underset{\_}{f}\; \in {F\left( \underset{\_}{R} \right)}} \right\}} + {\max\limits_{\underset{\_}{c} \in C}{\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}c_{l}}}}},$where the dual factors {λ_(l)}_(l=1) ^(L′) are the correspondingLagrangian multipliers associated with the constraints about {c_(l)} inthe optimization problem of method 300.

In step 412, a check is performed to determine if the upper and lowerbounds coincide. If they coincide, an optimal solution has been reachedand the method ends at step 416. If the upper and lower bounds do notcoincide, the method passes to step 414.

In steps 406 and 408, a lower bound and an upper bound of the originaloptimization are determined and the gap between the two bounds indicatesthe accuracy of the current solution. In case that the two boundscoincide, the optimal solution to the optimization problem of method 300is obtained and the method ends at step 416.

If they are different, a new vertex is generated in step 414. The newvertex is generated by solving the problem

$\max_{\underset{\_}{c} \in C}{\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}c_{l}}}$into the subset V′. The method 400 then returns control to step 406 andnew upper and lower bounds are determined. The iteration will continueuntil the gap between the two bounds is smaller than a predeterminedthreshold n.

The optimal solution may be referred to as {r*,f*}. If the optimizationproblem is a linear programming, the strong duality holds. That is, theoptimal primal solution coincides with its dual solution, and

${\max_{{r_{i} \geq 0},{\forall i}}\left\{ {{U\left( {\underset{\_}{R},\underset{\_}{f}} \right)} - {\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}f_{l}}}} \middle| {\underset{\_}{f} \in {F(R)}} \right\}} = {{U\left( {{\underset{\_}{R}}^{*},{\underset{\_}{f}}^{*}} \right)} - {\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}{f_{l}^{*}.}}}}$Accordingly, the upper bound may be efficiently solved using only

$\max_{\underset{\_}{c} \in C}{\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}{c_{l}.}}}$

The network optimization described with respect to FIGS. 3 and 4 may beenhanced by using network coding. That is, the optimization problem(e.g., the design and/or description of the network) may be furtherconstrained so as to introduce a network code (e.g., a code fortransmission of data in the network). Generally, in a linear networkcoding problem, a group of nodes are used to move data from one or moresource nodes to one or more sink nodes. Each node generates a new packetthat is a linear combination of the earlier received packets at thatnode. In embodiments of the present invention multiple unicast networkssuch as networks 100 and 200 of FIGS. 1 and 2 may use network coding(e.g., a designed network code) in their respective designs.

Linear programming methods in wireless mesh networks may be used innetwork code construction according to embodiments of the presentinvention, especially in conjunction with the optimization in step 304of method 300. For simplicity of presentation, the following discussionfocuses on network coding over GF(2) (e.g., the Galois field (finitefield) of two elements), where simple binary exclusive disjunction(e.g., XOR) operation is employed for network encoding and/or decoding.

For a given node nεN′, l(n) indicates the set of edges whose end node isn and O(n) indicates the set of edges whose start node is n. x_(l) ^(i)is the flow rate of the i^(th) session over the l^(th) link and theaggregate load on the l^(th) link is given by

$f_{l} = {\sum\limits_{i = 1}^{T}x_{l}^{i}}$if no network coding is considered. The T unicast triples (s_(i), d_(i),R_(i)) for i=1, 2, . . . , T are feasible with routing if the followingconditions hold:

${{\sum\limits_{i = 1}^{T}x_{l}^{i}} \leq c_{l}},{x_{l}^{i} = {f_{l} \geq 0}},{{{{and}\mspace{11mu}{\sum\limits_{l \in {O{(n)}}}^{\;}x_{l}^{i}}} - {\sum\limits_{l \in {I{(n)}}}^{\;}x_{l}^{i}}} = \left\{ \begin{matrix}{R_{i},} & {{{{if}\mspace{14mu} n} = s_{i}},} \\{{- R_{i}},} & {{{{if}\mspace{14mu} n} = d_{i}},} \\{0,} & {{otherwise},}\end{matrix} \right.}$where c={c_(l)}_(l=1) ^(L′) are the achievable rates that the physicallayer (e.g., in the OSI model) can support on links lεε′. However, whennetwork coding is permitted, the actual aggregate load over a particularlink l is no longer the sum of {x_(l) ^(i)}_(i=1) ^(T) and

${{\sum\limits_{i = 1}^{T}x_{l}^{i}} \leq c_{l}},$x_(l) ^(i)=f_(l)≧0 should be modified to reflect the effect of networkcoding. What is more, in order to ensure that a network coding scheme isdecodable, extra variables and conditions should be introduced based onthe following poison-antidote concept.

Referring back to FIG. 2, data may be transmitted from source nodes 202and 204. Physical node 202 (e.g., source 1) may transmit data b₁.Similarly, physical node 204 (e.g., source 2) may transmit data b₂.Thus, in a network coding scheme, data transmitted from node 206 isb₁⊕b₂ and knowledge of b₂ is needed at d₁ (e.g., physical node 210) inorder to recover b₁. The transmission of b₁⊕b₂ is referred to as“poisoning” of the two flows and the transmission of b₂ from physicalnode 204 to physical node 210 is interpreted as an “antidote.”Similarly, transmission of b₁ from physical node 202 to physical node208 is also interpreted as an “antidote.” Accordingly, an “antidoterequest” notifies node 202 (and similarly 204) of the poisoneddownstream and requests an antidote b₁ (similarly b₂) for d₂ (similarlyd₁).

Linear programming formulation for use in optimization of the throughputof the network may be based on a similar poison-antidote approach wherethe possible network coding+MAC gain depends upon the network topologyand can be unbounded. That is, in order to ensure that a given set ofrates (e.g., the candidate rates) can be supported by the network, a setof linear constraints are supplied.

A wireless network G′=(V′, ε′) is used with pseudo-broadcasting asdescribed above in networks 100 and 200. A source set is defined as

${S\overset{\Delta}{=}\left\{ {s_{1},s_{2},\ldots\mspace{14mu},s_{T}} \right\}},$where s_(i)εN. A network coding event is defined as

${u\overset{\Delta}{=}\left( {n_{u},S_{u}} \right)},$with n_(u)εN′ being the node where binary XOR encoding is performed(e.g., at intermediate node 206 in network 200) and S_(u) ⊂S being theset of sources that are involved in this network coding event. Forinstance, in the exemplary network 200 of FIG. 2, a network coding maybe initialized at node 206 which involves source s₁ and s₂ (e.g., nodes202 and 204). In other words, the encoder is b₁⊕b₂ with b₁ and b₂ beingthe bits from s₁ and s₂, respectively, and the network coding event isspecified by u=(node 204, {s₁, s₂}). A network may contain multiplecoding events and these events may form a network coding event setrepresented by U={u_(k)}.

Sufficient conditions (e.g., linear constraints) for the existence of anetwork coding solution involving routing, duplicating,pseudo-broadcasting, and bit-level XOR are considered. That is, whenthese constraints are satisfied, the solution corresponds to a validnetwork coding solution. In order to do so, a number of variables areintroduced. Given a particular coding event u=(n_(u),S_(u)), letiεS_(u). Also, p_(l)(i,u), {q_(l)(j→i,u)}_(jεS) _(u) _(,j≠i) and{r_(l)(j→i,u)}_(jεS) _(u) _(,j≠i) may be use to keep track of poison,antidote request, and antidote, respectively, on link l associated withthe poisoning of user l's data by other users in S_(u). For convenience,values are set as p_(l)(.)≦0, q_(l)(.)≦0 and r_(l)(.) ≧0, and thecorresponding absolute values denote respectively the amount of poisonedinformation, antidote request, and antidote. That is, p_(l)(i,u)=−1means that due to the coding event u, there is a flow of 1 bit ofinformation from source node i transmitted over link l which is poisonedby all the other sources in S_(u). Given a network coding event set U,for the network G′ where the capacity of link l is c_(l), if

${\sum\limits_{l \in {O{(n)}}}^{\;}\; x_{l}^{i}} - {\sum\limits_{l \in {I{(n)}}}^{\;}\;{x_{l}^{i}\left\{ \begin{matrix}{R_{i},} & {{{{if}\mspace{14mu} n} = s_{i}},} \\{{- R_{i}},} & {{{{if}\mspace{14mu} n} = d_{i}},} \\{0,} & {{otherwise},}\end{matrix} \right.}}$and the conditions discussed hereinafter are satisfied, then the ratetriples (s_(i), d_(i), R_(i)) for i=1, 2, . . . , T are feasible with U,and the corresponding p(.), q(.) and r(.) represent a particular networkcoding solution.

For all u_(k)εU and i,jεS_(u) _(k) :p _(l)(i,u _(k))=p _(l)(j,u _(k)) if lεΓ_(O)(n_(u) _(k) ).

For all nεN′,u_(k)εU, and i,jεS_(u) _(k) :

${\sum\limits_{l \in \;{\Gamma_{l}{(n)}}}^{\;}{p_{l}\left( {i,u_{k}} \right)}} - {\sum\limits_{l\; \in \;{\Gamma_{O}{(n)}}}^{\;}{{p_{l}\left( {i,u_{k}} \right)}\left\{ {\begin{matrix}{\geq 0} & {{{if}\mspace{14mu} n} = n_{uk}} \\{\leq 0} & {otherwise}\end{matrix},{{\sum\limits_{l \in \;{\Gamma{(n)}}}^{\;}{q_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}} - {\sum\limits_{l \in {\Gamma_{O}{(n)}}}^{\;}{{q_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}\left\{ {\begin{matrix}{\geq 0} & {{{if}\mspace{14mu} n} = n_{uk}} \\{\leq 0} & {otherwise}\end{matrix},{{{{and}{\sum\limits_{l \notin {\Gamma_{l}{(n)}}}^{\;}{p_{l}\left( {i,u_{k}} \right)}}} + {q_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)} + {r_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}} = {{\sum\limits_{l\; \in \;{\Gamma_{O}{(n)}}}^{\;}{p_{l}\left( {i,u_{k}} \right)}} + {q_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)} + {{r_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}.}}}} \right.}}}} \right.}}$

Let T_(uk) be the number of elements in S_(uk). At every link lεε′:

$\begin{matrix}{\underset{\underset{f_{l}^{x}}{︸}}{\sum\limits_{i = 1}^{T}x_{l}^{i}} + \underset{\underset{f_{l}^{r}}{︸}}{\sum\limits_{u_{k\;}}\;{\sum\limits_{{j\text{:}j} \in {Su}_{k\;}}^{\;}{\max\limits_{{i:{i \in {Su}_{k}}},{i \neq j}}{r_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}}}} +} \\{\underset{\underset{- f_{l}^{p}}{︸}}{\sum\limits_{u_{k}}^{\;}{\left( {{T\; u_{k}} - 1} \right){\max\limits_{{{i\text{:}i} \in {Su}_{k}},}{p_{l}\left( {i,u_{k}} \right)}}}} = {f_{l} \leq {c_{l}.}}}\end{matrix}$

At every link l and iεS:

${{x_{l}(i)} + {\sum\limits_{{u_{\kappa}\text{:}i}\; \in {Su}_{k}}^{\;}\;{p_{l}\left( {i,u_{k}} \right)}} + {\min\limits_{j \in {{{Su}_{k}j} \approx i}}{q_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}}} \geq 0.$

If the conditions specified in these constraints are satisfied, then therate triples (s_(i), d_(i), R_(i)) for i=1, 2, . . . , T are feasiblewith network coding scheme U, and the only operations involved areduplication, routing, pseudo-broadcasting and bit-level XOR.

In networks in which network coding as described herein is performed,coding might introduce extra decoding delay which will affect the upperlayer TCP/IP performance. For example, if binary coding over b₁ and b₂is performed, the receiver (e.g., physical nodes 206, 208, 210, etc.)needs to have both the coded bit b₁⊕b₂ and b₂ in order to recover b₁.Should it take more time for b₂ to reach the receiver than the coded bitb₁⊕b₂, the receiver needs to wait and cannot send back anacknowledgement (e.g., an ACK). This may increase the possibility ofmaking the sender (e.g., nodes 202 and/or 204) reduce its transmissionspeed and hence might significantly decrease the network throughput. Toprevent this delay constraints may be imposed on the network codeconstruction formulation, so extra decoding delay may be eliminated andthere is no need to modify the upper-layer TCP/IP protocol.

Network 200 may have a known delay over link l, T_(l). For coding eventu_(k), the poisoning event j→i. The information from j will go throughtwo virtual pipes, the first along the links with nonzeroantidote-request participating in the coding event u_(k) at node n_(uk)and then along the links with nonzero poison and ending at some decodingnode (e.g., a drain, an intermediate node, etc.). A second streamdenotes the antidote flow and also ends at the same decoding node. Thetotal delay for the antidote-request/poison stream is

$- {\sum\limits_{l}^{\;}{\left( {{p_{l}\left( {i,u_{k}} \right)} + {q_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}} \right)T_{l}}}$and the total delay of the antidote j→l is

$\sum\limits_{l}^{\;}{{r_{l}\left( {\left. j\rightarrow i \right.,u_{k}} \right)}{\tau_{l}.}}$Accordingly, for all u_(k) and iεS_(u) _(k) :

${{\sum\limits_{l}{{r_{l}\left( {{j->i},u_{k}} \right)}\tau_{l}}} \leq {- {\sum\limits_{l}{\left( {{p_{l}\left( {i,u_{k}} \right)} + {q_{l}\left( {{j->i},u_{k}} \right)}} \right)\tau_{l}}}}},$∀jεSu_(k), j≠i and the antidotes will arrive earlier than the poisonedinformation at the decoding node. Thus, if a network coding solutionsatisfies this constraint as well as those described above, there willbe no additional decoding delay.

To characterize the convex region C in the optimization formulation ofmethod step 304 for the network G′=(N′, ε′), communication models ofmulti-radio/multi-channel networks are used. Physical-layer andMAC-layer issues such as wireless resource allocation, power control,interference management, transmission scheduling and medium accessschemes as are known may be used.

To account for interference and power control, H_(l,k) denotes theeffective power loss between the transmitter (e.g., physical nodes 202,204, etc.) of the l^(th) link and the receiver (e.g., physical nodes206, 208, 210, etc.) of the k^(th) link, where lεε′ and kεε. Assumingthe value of H_(l,k) is determined by the β^(th) power path-loss law:H_(l,k)=G_(l,k)d_(l,k) ^(−β), where d_(l,k) is the distance between thestart node of the l^(th) link and the end node of the kth link, β is thepath-loss exponent, and G_(l,k) is a constant representing the radiopropagation properties of the wireless environment and otherphysical-layer effects.

In the physical layer (e.g., in a transmission model), each radio in thenetwork (e.g., networks 100, 200, etc.) may only transmit or receive atany moment in time. Accordingly, the medium access (e.g. MA) of amulti-radio/multi-channel network may be constrained (e.g., as a furtherconstraint to the optimization problem of method 300) according to thefollowing constraints:

Since each radio in the network (e.g., networks 100, 200, etc.) may onlytransmit or receive at any moment in time, a primary conflict constraint

${a_{n,m} = {{\sum\limits_{l \in {O{(n)}}}v_{l,m}} + {\sum\limits_{l \in {I{(n)}}}^{\;}v_{l,m}}}},{a_{n,m} \leq 1},{\forall n},m$is used. Additionally, the total number of channels accessed by a nodeis bounded by the number of radios in that node. That is, each node asdescribed above may have multiple radios (e.g., transmitters, antennas,etc.) and a radio conflict constraint

${{\sum\limits_{m = 1}^{M}a_{n,m}} \leq I_{n}},{n \in N},$where I_(n) is the available radio number at node n, is used.

Furthermore, a transmission over a link may be corrupted by other nodesin case that the signal-to-interference-plus-noise ratio (SINR) for thelink is smaller than its target SINR, a situation which is called thetransmission conflict. For lεε, in order to avoid a transmissionconflict over the m^(th) channel,

${\frac{H_{I,{IPI},m} + \left( {1 - v_{l,m}} \right)}{\sigma_{I}^{2} + {\sum\limits_{j \neq 1}H_{I,{jPj},m}}} > \gamma_{l,m}^{t}},$where jεε′ and Z_(l) is a constant large enough to guarantee

$z_{l} > {{\gamma_{l,m}^{t}\left( {\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},\max}}} \right)}.}$

In case that the l^(th) link is activated at the m^(th) channel,v_(l,m)=1

and

${\frac{H_{l,{lPl},m} + \left( {1 - v_{l,m}} \right)}{\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},m}}} > \gamma_{l,m}^{t}},$states that the SINR of the l_(th) link should be greater than thetarget SINR γ_(l,m) ^(t). In case the link is not activated, v_(l,m)=0and

${\frac{H_{l,{lPl},m} + \left( {1 - v_{l,m}} \right)}{\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},m}}} > \gamma_{l,m}^{t}},$always holds.

In the links (e.g., data links, etc.) associated with a virtual node n′(e.g., virtual node 224, 226, etc.), let l′εI(n′) and k′εO(n′). Also letl be the link (e.g., link 212, 214, 26, 218, etc.) which has the samestart node as l′ and end node as k′. In this way,

${\frac{H_{l,{lPl}^{\prime},m} + {\left( {1 - {v_{l^{\prime},m}v_{k^{\prime},m}}} \right)Z_{l,l^{\prime}}}}{\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},m}}} > \gamma_{l^{\prime},m}^{t}},$∀k′εO(n′) where jεε′ and Z_(l,l′) is a constant large enough toguarantee

$z_{l},{l^{\prime} > {{\gamma_{l,m}^{t}\left( {\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},\max}}} \right)}.}}$When _(vl′,mvk′,m)=1, a virtual broadcasting path is established alonglink l, and

${\frac{H_{l,{lPl}^{\prime},m} + {\left( {1 - {v_{l^{\prime},m}v_{k^{\prime},m}}} \right)Z_{l,l^{\prime}}}}{\sigma_{l}^{2} + {\sum\limits_{j \neq l}H_{l,{jPj},m}}} > \gamma_{l^{\prime},m}^{t}},$∀k′εO(n′) ensures that the SINR of this path is larger than the targetSINR. The capacity of the activated virtual links associated with thevirtual node n′ is determined by γ_(l,m) ^(t). To avoid transmissionconflict, the total power of a node should be less than P_(n,max). Thatis,

${\sum\limits_{l \in {O{(n)}}}{\sum\limits_{m}{Pl}}},{m \leq P_{n,\max}},{\forall{n \in {N.}}}$

The capacity of the l^(th) link is given by

${c_{l} = {\sum\limits_{m = 1}^{M}c_{l,m}^{t}}},$and the convex set C (described above) is a convex hull of {c|csatisfies the constraints

${a_{n,m} = {{\sum\limits_{l \in {O{(n)}}}v_{l,m}} + {\sum\limits_{l \in {l{(n)}}}v_{l,m}}}},{a_{n,m} \leq 1},{\forall n},m,{{\sum\limits_{m = 1}^{M}a_{n,m}} \leq I_{n}},{n \in N},{\frac{H_{l,{lPI},m} + \left( {1 - v_{l,m}} \right)}{\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},m}}} > \gamma_{l,m}^{t}},{\frac{H_{l,{lPl}^{\prime},m} + {\left( {1 - {v_{l^{\prime},m}v_{k^{\prime}\;,m}}} \right){Z_{l,I}}^{\prime}}}{\sigma_{l}^{2} + {\sum\limits_{j \neq l}H_{l,{jPj},m}}} > \gamma_{l^{\prime},m,}^{t}}$${\forall{k^{\prime} \in {O\left( n^{\prime} \right)}}},{\sum\limits_{l \in {O{(n)}}}{\sum\limits_{m}{Pl}}},{m \leq P_{n,\max}},{\forall{n \in {N.\text{\}}.}}}$Thus, the optimization problem described above in method 300 may bereformulated as

${\max{\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}c_{l}}}},$such that c satisfies the constraints

${a_{n,m} = {{\sum\limits_{l \in {O{(n)}}}v_{l,m}} + {\sum\limits_{l \in {l{(n)}}}v_{l,m}}}},{a_{n,m} \leq 1},{\forall n},m,{{\sum\limits_{m = 1}^{M}a_{n,m}} \leq I_{n}},{n \in N},{\frac{H_{l,{lPl},m} + \left( {1 - v_{l,m}} \right)}{\sigma_{l}^{2} + {\sum\limits_{j \neq 1}H_{l,{jPj},m}}} > \gamma_{l,m}^{t}},{\frac{H_{l,{lPl}^{\prime},m} + {\left( {1 - {v_{l^{\prime},m}v_{k^{\prime},m}}} \right)Z_{l,l^{\prime}}}}{\sigma_{l}^{2} + {\sum\limits_{j \neq l}H_{l,{jPj},m}}} > \gamma_{l^{\prime},m,}^{t}}$${\forall{k^{\prime} \in {O\left( n^{\prime} \right)}}},{\sum\limits_{l \in {O{(n)}}}{\sum\limits_{m}{Pl}}},{m \leq P_{n,\max}},{\forall{n \in {N.}}}$

One or more wireless mesh networks, each having multiple transmissionsources (e.g., multiple radios, transmitters, antennas, etc.) may bedesigned and/or implemented according to the methods described herein.That is, an optimization problem describing such a network may beformulated and solved. In other words, a network may be designed and thethroughput of such a network may be optimized. In at least oneembodiment, the optimization problem may be solved according to aprimal-dual method with column generation. The designed network may beconstructed and transmission may be sent using the network code designedfor such a network.

FIG. 5 is a schematic drawing of a controller 500 according to anembodiment of the invention. Controller 500 contains a processor 502which controls the overall operation of the controller 500 by executingcomputer program instructions which define such operation. The computerprogram instructions may be stored in a storage device 504 (e.g.,magnetic disk, database, etc.) and loaded into memory 506 when executionof the computer program instructions is desired. Thus, applications forperforming the herein-described method steps, such as network coding,transmitting data, and throughput optimization, in methods 300 and 400are defined by the computer program instructions stored in the memory506 and/or storage 504 and controlled by the processor 502 executing thecomputer program instructions. The controller 500 may also include oneor more network interfaces 508 for communicating with other devices viaa network (e.g., a peer to peer network, etc.). The controller 500 alsoincludes input/output devices 510 (e.g., display, keyboard, mouse,speakers, buttons, etc.) that enable user interaction with thecontroller 500. Controller 500 and/or processor 502 may include one ormore central processing units, read only memory (ROM) devices and/orrandom access memory (RAM) devices. One skilled in the art willrecognize that an implementation of an actual controller could containother components as well, and that the controller of FIG. 5 is a highlevel representation of some of the components of such a controller forillustrative purposes.

According to some embodiments of the present invention, instructions ofa program (e.g., controller software) may be read into memory 506, suchas from a ROM device to a RAM device or from a LAN adapter to a RAMdevice. Execution of sequences of the instructions in the program maycause the controller 500 to perform one or more of the method stepsdescribed herein, such as those described above with respect to methods300 and 400. In alternative embodiments, hard-wired circuitry orintegrated circuits may be used in place of, or in combination with,software instructions for implementation of the processes of the presentinvention. Thus, embodiments of the present invention are not limited toany specific combination of hardware, firmware, and/or software. Thememory 506 may store the software for the controller 500, which may beadapted to execute the software program and thereby operate inaccordance with the present invention and particularly in accordancewith the methods described in detail above. However, it would beunderstood by one of ordinary skill in the art that the invention asdescribed herein could be implemented in many different ways using awide range of programming techniques as well as general purpose hardwaresub-systems or dedicated controllers.

Such programs may be stored in a compressed, uncompiled and/or encryptedformat. The programs furthermore may include program elements that maybe generally useful, such as an operating system, a database managementsystem, and device drivers for allowing the controller to interface withcomputer peripheral devices, and other equipment/components. Appropriategeneral purpose program elements are known to those skilled in the art,and need not be described in detail herein.

The foregoing Detailed Description is to be understood as being in everyrespect illustrative and exemplary, but not restrictive, and the scopeof the invention disclosed herein is not to be determined from theDetailed Description, but rather from the claims as interpretedaccording to the full breadth permitted by the patent laws. It is to beunderstood that the embodiments shown and described herein are onlyillustrative of the principles of the present invention and that variousmodifications may be implemented by those skilled in the art withoutdeparting from the scope and spirit of the invention. Those skilled inthe art could implement various other feature combinations withoutdeparting from the scope and spirit of the invention.

1. An apparatus for designing a wireless mesh network having a pluralityof transmission sources and a plurality of nodes configured tocommunicate over a plurality of links, the apparatus comprising: meansfor determining an optimization problem describing the wireless meshnetwork, wherein the optimization problem is a utility functionmaxU(R,f) wherein R are unicast data rates and f are network flow rates;means for determining a plurality of constraints for the optimizationproblem, wherein the plurality of constraints for the optimizationproblem comprises: fεF(R), r_(i)≧0, ∀i, cεC(I), and f_(l)≦c_(l), ∀lwherein: fεF(R) enforces the dependence between the achievable rates Rand the data flows f; r_(i)≧0, ∀i is a data rate; cεC(I) is therelationship between the achievable link capacity c and transmissionsource allocation; and f_(l)≦c_(l), ∀l bounds a sum of the flow rate oneach link by a link capacity; and means for determining a network codefor the wireless mesh network by solving the optimization problem usinga column-based primal-dual optimization method, wherein delayconstraints are imposed on the network code to constrain theoptimization problem, the delay constraints providing a transmissionscheme in which antidotes are received at a decoding node prior topoisoned data.
 2. The apparatus of claim 1 wherein the means for solvingthe optimization problem using a column-based primal-dual optimizationmethod comprises: means for generating a set V′ comprising one or morefeasible link rates c_(k) wherein V′={c_(k)εC}_(k=1) ^(K) and K is thenumber of feasible link capacity vectors; means for approximating C withC′⊂C wherein${C^{\prime} = \left\{ {{\left. \underset{\_}{c} \middle| \underset{\_}{c} \right. = {\sum\limits_{k = 1}^{\kappa}{\alpha_{k}{\underset{\_}{c}}_{k}}}},{{s.t.{\sum\limits_{k = 1}^{\kappa}\alpha_{k}}} = 1},{\alpha_{k} \geq 0},{\forall k}} \right\}};$means for determining a lower bound of the optimization problem which isa solution to the optimization problem; means for determining one ormore dual factors {λ_(l)}_(l=1) ^(L′) wherein L is the set of linksconnecting the plurality of nodes; means for determining an upper boundof the optimization problem wherein the upper bound is${\max\limits_{{r_{i} \geq 0},\forall_{i}}\left\{ {{U\left( {\underset{\_}{R},\underset{\_}{f}} \right)} - {\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}f_{l}}}} \middle| {\underset{\_}{f} \in \;{F\left( \underset{\_}{R} \right)}} \right\}} + {\max\limits_{\underset{\_}{c}\; \in \; C}{\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}c_{l}}}}$ and wherein the dual factors {λ_(l)}_(l=1) ^(L′) are the correspondingLagrangian multipliers associated with the constraints about {c_(l)} inthe optimization problem.
 3. An apparatus for designing a wireless meshnetwork having a plurality of transmission sources and a plurality ofnodes configured to communicate over a plurality of links, the apparatuscomprising: means for determining an optimization problem describing thewireless mesh network, wherein the optimization problem is$\max{\sum\limits_{l = 1}^{L^{\prime}}{\lambda_{l}c_{l}}}$  and furtherwherein L is the set of links over which the plurality of nodes areconfigured to communicate, c is an achievable link capacity, and λ isdual factor; means for determining a plurality of constraints for theoptimization problem, wherein the plurality of constraints for theoptimization problem comprises:${a_{n,m} = {{{\sum\limits_{l\; \in \;{O{(n)}}}^{\;}\nu_{l,m}} + {\sum\limits_{l\; \in \;{l{(n)}}}^{\;}{\nu_{l,m,}a_{n,m}}}} \leq 1}},{\forall n},{m;}$${{\sum\limits_{m = 1}^{M}a_{n,m}} \leq I_{n}},{{n\; \in \; N};}$${\frac{H_{l,{lPl},m} + \left( {1 - \nu_{l,m}} \right)}{\sigma_{l}^{2} + {\sum\limits_{j \neq 1}^{\;}H_{l,{jPj},m}}} > \gamma_{l,m}^{t}};$${{\frac{H_{l,{lPl}^{\prime},m} + {\left( {1 - {\nu_{l^{\prime},m}v_{k^{\prime},m}}} \right)Z_{l,l^{\prime}}}}{\sigma_{l}^{2} + {\sum\limits_{j \neq l}^{\;}H_{l,{jPj},m}}} > {\gamma_{l,m,}^{t}{\forall{k^{\prime}\; \in \;{O\left( n^{\prime} \right)}}}}};{{and}{\sum\limits_{l\; \in \;{O{(n)}}}^{\;}{\sum\limits_{m}^{\;}{Pl}}}}},{m \leq P_{n,\max}},{\forall{n\; \in \; N}},{{wherein}\text{:}}$m is a channel, I is a link, a_(n,m) and v_(l,m) are indicatorvariables, H is an effective power loss, P is a transmission power overa link, K is a number of feasible link capacity vectors, γ is a targetsignal-to-interference-plus-noise ratio, and Z is a constant largeenough to guarantee$z_{l},{{l^{\prime} > {\gamma_{l,m}^{t}\left( {\sigma_{l}^{2} + {\sum\limits_{j \neq 1}^{\;}H_{l,{jPj},\max}}} \right)}};\mspace{14mu}{and}}$means for determining a network code for the wireless mesh network bysolving the optimization problem using a column-based primal-dualoptimization method, wherein delay constraints are imposed on thenetwork code to constrain the optimization problem, the delayconstraints providing a transmission scheme in which antidotes arereceived at a decoding node prior to poisoned data.